package com.ynet.middleground.contract.service;

import java.util.List;

import javax.validation.Valid;

import com.ynet.core.common.ServiceResult;
import com.ynet.middleground.contract.bean.AddTemplateTableParamsReq;
import com.ynet.middleground.contract.bean.DeleteTemplateTableParamReq;
import com.ynet.middleground.contract.bean.QueryTemplateTableParamsReq;
import com.ynet.middleground.contract.bean.UpdateTemplateTableParamReq;
import com.ynet.middleground.contract.dto.TemplateTableParamDTO;

/**
 * @author liulx
 * @description 模板表格单元格参数管理服务
 * @date 2020-04-03 14:34
 */
public interface TemplateTableParamService {

    /**
     * 根据表格 id 查询表格单元格参数列表
     * 
     * @param queryTemplateTableParamsReq 查询模板表格的参数信息请求类
     * @return 表格单元格参数列表
     */
    ServiceResult<List<TemplateTableParamDTO>>
        listTemplateTableParamsByTableId(@Valid QueryTemplateTableParamsReq queryTemplateTableParamsReq);

    /**
     * 添加表格参数信息
     * 
     * @param addTemplateTableParamsReq 新增模板表格单元格参数请求类
     * @return 结果标志，以 success 字段值标识 true/false
     */
    ServiceResult addTemplateTableParams(@Valid AddTemplateTableParamsReq addTemplateTableParamsReq);

    /**
     * 根据表格参数 id 修改参数信息
     *
     * @param updateTemplateTableParamReq 修改模板表格参数信息请求类
     * @return 结果标志，以 success 字段值标识 true/false
     */
    ServiceResult updateTemplateTableParamById(@Valid UpdateTemplateTableParamReq updateTemplateTableParamReq);

    /**
     * 根据表格参数 id 删除指定表格参数信息
     *
     * @param deleteTemplateTableParamReq 删除模板表格参数请求类
     * @return 结果标志，以 success 字段值标识 true/false
     */
    ServiceResult deleteTemplateTableParamById(@Valid DeleteTemplateTableParamReq deleteTemplateTableParamReq);
}
